const cors = require('cors');
const config = require('../config/server');

// CORS中间件配置
const corsOptions = {
    origin: function (origin, callback) {
        // 允许无origin的请求（如移动应用、Postman等）
        if (!origin) return callback(null, true);
        
        // 检查origin是否在允许列表中
        if (config.cors.origin.includes(origin)) {
            callback(null, true);
        } else {
            // 在生产环境中，可以更严格地限制origin
            if (process.env.NODE_ENV === 'production') {
                callback(new Error('不允许的CORS origin: ' + origin));
            } else {
                // 开发环境允许所有origin
                callback(null, true);
            }
        }
    },
    methods: config.cors.methods,
    allowedHeaders: config.cors.allowedHeaders,
    credentials: config.cors.credentials,
    maxAge: config.cors.maxAge,
    optionsSuccessStatus: 200 // 支持旧版浏览器
};

module.exports = cors(corsOptions);
